= render "projects/blob/breadcrumb", blob: blob
- project = @project.present(current_user: current_user)
- ref = local_assigns[:ref] || @ref
- expanded = params[:expanded].present?
-# If the blob has a RichViewer we preload the content except for GeoJSON since it is handled by Vue
- if blob.rich_viewer && blob.extension != 'geojson'
  - add_page_startup_api_call local_assigns.fetch(:viewer_url) { url_for(safe_params.merge(viewer: blob.rich_viewer.type, format: :json)) }

.info-well.d-none.d-sm-block
  .well-segment
    %ul.blob-commit-info
      = render 'projects/commits/commit', commit: @last_commit, project: @project, ref: @ref

  - if project.licensed_feature_available?(:code_owners)
    #js-code-owners{ data: { blob_path: blob.path, project_path: @project.full_path, branch: @ref, can_view_branch_rules: can_view_branch_rules?, branch_rules_path: branch_rules_path } }
  = render "projects/blob/auxiliary_viewer", blob: blob

- if project.forked?
  #js-fork-info{ data: vue_fork_divergence_data(project, ref) }

#blob-content-holder.blob-content-holder.js-per-page{ data: { blame_per_page: Gitlab::Git::BlamePagination::PAGINATION_PER_PAGE } }
  - if @code_navigation_path
    #js-code-navigation{ data: { code_navigation_path: @code_navigation_path, blob_path: blob.path, definition_path_prefix: project_blob_path(@project, @ref) } }
  - if !expanded
    -# Data info will be removed once we migrate this to use GraphQL
    -# Follow-up issue: https://gitlab.com/gitlab-org/gitlab/-/issues/330406
    #js-view-blob-app{ data: vue_blob_app_data(project, blob, ref).merge(ref_type: @ref_type.to_s) }
      = gl_loading_icon(size: 'md')
  - else
    %article.file-holder
      = render 'projects/blob/header', blob: blob
      = render 'projects/blob/content', blob: blob
